package com.itheima.c_list;

import java.util.ArrayList;

/**
 * 目标：掌学习泛型
 * <p>
 * 一般创建集合对象时，会给类型变量（泛型）赋值指定的类型
 */
public class ListDemo02 {

    public static void main(String[] args) {
        //2.1 一般创建集合对象时，会给类型变量（泛型）赋值指定的类型。ArrayList类在定义的时候，也定义了泛型变量E（看源码）
        //创建一个ArrayList集合对象，指定里面只能存储String类型，E这个类型变量需要赋值String
        ArrayList<String> list2 = new ArrayList<>();
        list2.add("a");
        list2.add("b");
        //2.2 一旦尝试添加其他类型数据，代码会报错
        //list2.add(1);
        System.out.println(list2);
        System.out.println("--------------------");

        //2.3 泛型E只能被赋值引用数据类型，不能被赋值基本数据类型
        //创建集合，指定只能存储整数
        //ArrayList<int> list3 = new ArrayList<>();

        /**
         * 2.4 如果希望集合能存储基本数据类型的数据，E需要被赋值基本数据类型对应的引用类型（包装类）
         * 基本数据类型：包装类类型
         *
         * byte：Byte
         * short：Short
         * int：Integer
         * long：Long
         *
         * float：Float
         * double：Double
         *
         * char：Character
         *
         * boolean：Boolean
         *
         * 技巧：首字母大写
         */
        ArrayList<Integer> list3 = new ArrayList<>();
        list3.add(1);
        list3.add(2);
        list3.add(3);
        System.out.println(list3);
        System.out.println("---------------");

    }
}
